package controllers;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

import play.mvc.*;
 
import javax.persistence.EntityManager;


import models.Medico;
import models.Paciente;
import play.db.jpa.JPA;

public class Application extends Controller {

    public static void index() {
        render();
    }

    public static  void cadastroNovoMedico() {
	        render();
	    }

        public static  void gerarRelatorio() {
	        render();
	    }

        public static  void relatorioLista() {
	        render();
	    }

        public static  void telaPrincipal() {
	        render();
	    }

	    public static  void cadastroFicha() {
	        render();
	    }

	    public static  void consultarFicha() {
	        render();
	    }

	    public static  void resultadoFicha() {
	        render();
	    }

	    public static  void atualizarFicha() {
	        render();
	    }


	    public static void toSql(String sql){
	    	 try {  
		            Connection con;    
		  
		            Class.forName("org.postgresql.Driver");  
		            con = (Connection) DriverManager.getConnection(  
		                    "jdbc:postgresql://localhost:5432/Sipro",  
		                    "postgres",  
		                    "sipro123");  
		            Statement stm = (Statement) con.createStatement();  
		            
		                stm.executeUpdate(sql);       
		                con.close();
		               
		        } catch (ClassNotFoundException ex) {  
		            Logger.getLogger(Paciente.class.getName()).log(Level.SEVERE, null, ex);  
		        } catch (SQLException ex) {  
		            Logger.getLogger(Paciente.class.getName()).log(Level.SEVERE, null, ex);  
		        }  
	    }
	    
	    public static void cadastroPaciente(String nomepac,long prontpac, String diagnostico, long telpac, String sexo,
				String localpac, String endpac, boolean historicopac, int dia, int mes, int ano) {  
	  	
	    	String historico = "'false'";
	    	if (historicopac)
	    		historico = "'true'";
	    	else
	    		historico = "'false'";    
	              
	            String sql = "INSERT INTO paciente(nomepac,endpac,diagnostico,telpac,localpac,historicopac,sexo,prontpac,data_nascimento) " +
	             		"VALUES('"+nomepac+"','"+endpac+"','"+diagnostico+"',"+telpac+",'"+localpac+"',"+historico+",'"+sexo+"',"+prontpac+",'"+dia+"/"+mes+
	             		"/"+ano+"')" ;
	            toSql(sql);
	            // cadastroFicha.html
	            // ao cadastrar, retornar a telaPrincipal e notificar que foi adicionado com sucesso
	            // em caso de chave duplicada,tambem retornar e notificar "paciente ja cadastrado"
	            //
	    }   

	    
	    public static void solicitacaoMedico(String nomemed_s, String senha_s1, String senha_s2, String especializacao_s, String departamento_s, long crm_s, String email_s, 
				  long telmed_s, String justificativa_s){
	    		
	    	
	    	String sql = "INSERT INTO solicitacao(crm_s,email_s,especializacao_s,departamento_s,justificativa_s,nomemed_s,senha_s,telmed_s)" +
	    	"VALUES("+crm_s+",'"+email_s+"','"+especializacao_s+"','"+departamento_s+"','"+justificativa_s+"','"+nomemed_s+"','"+senha_s1+"',"+telmed_s+")";
	    	
	    	toSql(sql);
	    	/*
	    	 * cadastroNovoMedico.html
	    	 * mesmo caso de cadastroFicha.html, notificar e retornar a pagina
	    	 * fazer com que ao cadastrar, enviar os dados para o email: damger.ciencomp@gmail.com
	    	 * no email deve ter os dados enviados e um link para uma nova pagina, para aceiar ou nao o medico, ou se preferir, bota dois links
	    	 * um para aceitar e outro para recusar a solicitacao
	    	 * e lembre de criar essa nova pagina
	    	 * 
	    	*/
	    }
	    
	    public static void cadastroMedico(long crm){
	    	
	    	String sql = "insert into medico select * from solicitacao where crm_s = "+crm;
	    	String sql2 = "delete from  solicitacao where crm_s ="+crm;
	    	toSql(sql);
	    	toSql(sql2);
	    	
	    	// NOVA PAGINA	
	    	// ao clickar no botao ou link de autorizar cadastro, essa funcao precisa apenas do crm dele, pra cadastra-lo
	    }
	    
	    public static void atualizarPaciente(String nomepac,long prontpac, String diagnostico, long telpac, String sexo,
				String localpac, String endpac, boolean historicopac, int dia, int mes, int ano){
	    	
	    	String historico = "'false'";
	    	if (historicopac)
	    		historico = "'true'";
	    	else
	    		historico = "'false'";  
	    	
	    	String sql = "UPDATE paciente SET nomepac ='"+nomepac+"','"+diagnostico+"',"+telpac+",'"+sexo+"','"+localpac+
	    			"','"+endpac+"',"+historico+",'"+dia+"/"+mes+"/"+ano+"' WHERE prontpac ="+prontpac;
	    	
	    	toSql(sql);
	    }
	    
	    public static void login(String login, String senha){
	    	
	    	String sql = "select * from medico where email = '"+login+"' and senha = '"+senha+"'";
	    	toSql(sql);

	    }
	    
}
